Streaming servers are used to deliver contents to end users. Commonly used streaming systems are adversely affected by packet loss and latency conditions associated with long delivery paths. For example, a TCP/IP connection uses a window in each direction, which is the maximum number of bytes that can be transmitted by the source without being acknowledged as having been successfully received by the client. Even if there is no packet loss in the network, windowing can limit throughput and the full bandwidth of the network may not always get used. In addition, when packet loss occurs in the network, additional significant limit is imposed on the TCP connection.
In some cases, streaming content is received from a distributed storage system. Commonly used techniques of synchronizing multiple servers for delivering distributed content comprise inter-server communication. These techniques are complex to realize, and often do not optimally utilize resources such as communication bandwidth and storage space.